iT邦幫忙

2026 iThome 鐵人賽

DAY 6
0

前幾天一直在看 IP、Subnet、ARP、Default Gateway、Routing Table。

老實說,看概念的時候好像都懂,但只要沒有真的把設備接起來,還是會有一種:

所以 Router 到底是在幹嘛?

的感覺。

今天乾脆直接打開 Cisco Packet Tracer

目標很單純:

PC
↓
Router0
↓
Router1
↓
Server

讓 PC 最後可以真的找到 Server。

實際操作之後,可以把前幾天幾個一直有點模糊的概念串起來xd


如果你是第一次打開 Packet Tracer,可以這樣做

這篇不是 Packet Tracer 的完整操作手冊,不過如果第一次打開,可能可以先把今天會用到的東西放上去?

1. 先放四台設備

左下角可以選設備類型。

先放:

End Devices
→ PC
→ Server

Network Devices
→ Routers
→ 1941 × 2

最後畫面上大概會有:

PC0    Router0    Router1    Server0

我們選 1941,是因為它的 G0/0、G0/1 很直觀,拿來看兩個不同網段滿適合的。

2. 用閃電圖示接線

左下角的 Connections 裡有一個閃電圖示:

Automatically Choose Connection Type

如果現在還不想先研究 Straight-Through、Cross-Over,可以先用這個,讓 Packet Tracer 幫忙選線。

今天接成:

PC0 FastEthernet0
→ Router0 GigabitEthernet0/0

Router0 GigabitEthernet0/1
→ Router1 GigabitEthernet0/0

Router1 GigabitEthernet0/1
→ Server0 FastEthernet0

如果剛接上時看到紅色,不一定代表接錯。

Cisco Router 的介面預設可能還是關閉的,後面打:

no shutdown

之後才會真的起來。

3. PC 和 Server 的 IP 在哪裡設定?

點 PC0 或 Server0:

Desktop
→ IP Configuration

就可以輸入:

IP Address
Subnet Mask
Default Gateway

所以 PC0 等一下會填:

IP Address:      192.168.1.10
Subnet Mask:     255.255.255.0
Default Gateway: 192.168.1.1

Server0 則會填:

IP Address:      10.0.0.20
Subnet Mask:     255.255.255.0
Default Gateway: 10.0.0.1

4. Router 的設定從 CLI 進去

點 Router:

CLI

如果第一次開啟看到:

Would you like to enter the initial configuration dialog? [yes/no]:

這次可以先輸入:

no

然後按 Enter,就會看到 Cisco IOS 的 CLI。

接下來文章裡出現的:

enable
configure terminal
interface gigabitEthernet 0/0

就是從這裡輸入。

到這裡就夠了。

今天不是要先學會 Packet Tracer 每一個按鈕,而是先把:

PC → Router → Router → Server

這條路真的搭起來,再看 Packet 到底怎麼走。


今天的拓樸

最後要做成:

PC0
192.168.1.10/24
GW 192.168.1.1
      │
      │
Router0
G0/0 192.168.1.1/24
G0/1 192.168.12.1/30
      │
      │
Router1
G0/0 192.168.12.2/30
G0/1 10.0.0.1/24
      │
      │
Server0
10.0.0.20/24
GW 10.0.0.1

乍看 IP 很多。

但其實拆開之後,就是三個 Network:

192.168.1.0/24
192.168.12.0/30
10.0.0.0/24

第一個是 PC 和 Router0。

第二個是 Router0 和 Router1。

第三個是 Router1 和 Server。


第一段:PC0 → Router0

先設定 PC0:

IP Address:      192.168.1.10
Subnet Mask:     255.255.255.0
Default Gateway: 192.168.1.1

Router0 則設定 G0/0:

enable
configure terminal

interface gigabitEthernet 0/0
ip address 192.168.1.1 255.255.255.0
no shutdown

第一次看到這幾行的時候,其實還是會把它理解成:

在設定 Router 的 IP。

但這個理解不夠精確。

其實是在設定:

Router0 的 G0/0
IP = 192.168.1.1/24

也就是 IP 是設定在 interface 上。


interface gigabitEthernet 0/0 到底在幹嘛?

這行:

interface gigabitEthernet 0/0

不是在設定 IP。

它只是告訴 Router:

接下來我要設定 G0/0 這個 interface。

接下來:

ip address 192.168.1.1 255.255.255.0

才是真的把 IP 掛到這個 interface 上。

最後:

no shutdown

則是把這個 interface 啟用。

所以可以拆成:

interface gigabitEthernet 0/0
→ 選 G0/0

ip address ...
→ 設定它的 IP

no shutdown
→ 把它打開

原來 Router 不只有一個 IP

這是今天一個很重要的發現。

原本腦中會把 Router 想成:

Router
= 一個 IP

但其實不是。

Router0 可以是:

G0/0 = 192.168.1.1/24
G0/1 = 192.168.12.1/30

Router1 可以是:

G0/0 = 192.168.12.2/30
G0/1 = 10.0.0.1/24

更精確地說:

Router 的不同 Layer 3 interface,可以有不同 IP。

Router 就是靠這些不同 interface,站在不同 Network 裡。

例如 Router0:

192.168.1.0/24
       │
       │ G0/0
       │ 192.168.1.1
       │
    Router0
       │
       │ G0/1
       │ 192.168.12.1
       │
192.168.12.0/30

這樣 Router 才有辦法把不同 Network 接起來。


Layer 3 和 Layer 3 interface 原來不是同一個東西

Layer 3 是:

IP
Subnet
Routing
Packet

也就是一個「網路層的概念」。

而 Layer 3 interface 是:

可以設定 IP、參與 IP Routing 的 interface。

所以:

Layer 3
≠
Layer 3 interface

可以粗略理解:

Layer 3
= IP / Routing 這套規則

Layer 3 interface
= 可以使用這套規則的介面

像 Router 的 G0/0、G0/1,就是我們現在使用的 Layer 3 interface。

而 Layer 3 interface 也不等於「實體層」。

G0/0 的確是一個真的網路孔,但資料從它出去時,其實會同時碰到:

Layer 3
IP / Routing / Packet

Layer 2
Ethernet / MAC / Frame / FCS

Layer 1
Bits / Cable / Signal

目前先不用急著背完整 OSI 七層。

至少先知道:

Layer 和 Layer interface 是不同概念。

就先夠用了。


FCS 又是什麼?

前面學 Ethernet Frame 時看過:

Destination MAC
Source MAC
Payload
FCS

FCS 全名是 Frame Check Sequence。

它放在 Ethernet Frame 尾端,主要用途是:

檢查這個 Frame 在傳輸過程中有沒有發生錯誤。

傳送端會依據 Frame 的內容算出檢查值;接收端收到後再重新計算。

如果結果對不上,就知道這個 Frame 可能在傳輸途中壞掉了。

所以目前可以非常粗略地記:

Layer 3
IP / Routing
Packet

↓ 包進

Layer 2
Ethernet / MAC / FCS
Frame

↓ 真的送出去

Layer 1
Bits / Cable / Signal

第二段:Router0 → Router1

接著把兩台 Router 接起來。

這段使用:

192.168.12.0/30

Router0:

G0/1 = 192.168.12.1

Router1:

G0/0 = 192.168.12.2

Router0 設定:

enable
configure terminal

interface gigabitEthernet 0/1
ip address 192.168.12.1 255.255.255.252
no shutdown

Router1:

enable
configure terminal

interface gigabitEthernet 0/0
ip address 192.168.12.2 255.255.255.252
no shutdown

為什麼這次是 /30?

/30 的 Subnet Mask 是:

255.255.255.252

Block Size:

256 - 252 = 4

所以第一個 /30 網段有:

192.168.12.0
192.168.12.1
192.168.12.2
192.168.12.3

在這個練習裡:

.0 → Network Address
.1 → Router0
.2 → Router1
.3 → Broadcast

剛好只有兩台 Router 要用 IP,所以 /30 很適合拿來當這條點對點連線的練習。


第一次 Ping 為什麼只有 80%?

設定完之後,在 Router0:

ping 192.168.12.2

第一次看到:

.!!!!

以及:

Success rate is 80 percent (4/5)

一開始會以為哪裡壞掉。

其實第一個 ICMP Echo 很可能正在等 ARP。

Router0 知道:

我要找 192.168.12.2

但還不知道:

192.168.12.2 的 MAC 是多少?

所以先:

ARP Request
↓
ARP Reply
↓
取得 MAC
↓
開始送 ICMP

等 ARP Table 裡已經有資料之後,再 Ping 通常就可以直接成功。

這也是第一次真的看到:

IP 和 MAC 不是兩套完全分開的東西。

Router 要在 Ethernet 上把 Frame 送給下一跳,還是需要知道下一跳的 MAC。


第三段:Router1 → Server

最後一段:

Router1
↓
Server0

Router1 的 G0/1:

interface gigabitEthernet 0/1
ip address 10.0.0.1 255.255.255.0
no shutdown

Server0:

IP Address:      10.0.0.20
Subnet Mask:     255.255.255.0
Default Gateway: 10.0.0.1

所以這段就是:

Router1 G0/1
10.0.0.1/24
      │
      │
Server0
10.0.0.20/24

在 Router1:

ping 10.0.0.20

同樣第一次可能看到:

.!!!!

如果後面有 Reply,就代表 Router1 到 Server 這一段已經正常。


show ip interface brief:快速看介面有沒有起來

這次也第一次真的使用:

show ip interface brief

例如 Router0:

GigabitEthernet0/0   192.168.1.1    up    up
GigabitEthernet0/1   192.168.12.1   up    up

這可以快速確認:

interface 是哪一個
IP 是多少
介面有沒有起來

今天還看到:

Vlan1   unassigned   administratively down   down

目前先不理它。

至少知道:

unassigned
→ 沒 IP

administratively down
→ 被設定成關閉

之後學 Switch、VLAN、SVI 再回來。


三段都通了,為什麼 PC 還不一定找得到 Server?

目前:

PC0 ↔ Router0       OK
Router0 ↔ Router1   OK
Router1 ↔ Server0   OK

看起來每一段都通。

但有個問題。

Router0 的 Routing Table:

show ip route

可以看到:

C 192.168.1.0/24
C 192.168.12.0/30

其中:

C = Connected

代表這些 Network 是 Router0 自己直接連上的。

例如:

192.168.1.0/24
→ 從 G0/0

192.168.12.0/30
→ 從 G0/1

但 Routing Table 裡沒有:

10.0.0.0/24

所以如果 Router0 收到:

Destination IP = 10.0.0.20

它會遇到一個很單純的問題:

我不知道 10.0.0.0/24 在哪裡。

這時才需要 Static Route。


Static Route:告訴 Router「不知道的路要往哪走」

在 Router0:

configure terminal
ip route 10.0.0.0 255.255.255.0 192.168.12.2

這一行拆開:

ip route
→ 手動建立一條路由

10.0.0.0
255.255.255.0
→ 目的 Network 是 10.0.0.0/24

192.168.12.2
→ 下一跳是 Router1

所以整句其實就是:

Router0,如果你要去 10.0.0.0/24,把 Packet 交給 192.168.12.2。

192.168.12.2 就是 Router1 的 G0/0。


有去還要有回來

但這樣還沒結束。

Router0 現在知道:

怎麼去 Server

Router1 也必須知道:

怎麼回 PC

所以 Router1 還要:

configure terminal
ip route 192.168.1.0 255.255.255.0 192.168.12.1

意思就是:

要去 192.168.1.0/24,下一跳找 Router0 的 192.168.12.1。

最後路徑才完整:

去程

PC0
↓
Router0
↓
Router1
↓
Server0


回程

Server0
↓
Router1
↓
Router0
↓
PC0

這裡也終於理解:

網路不是「送得到」就夠了,Reply 也要有路回來。


最後驗證

從 PC0:

ping 10.0.0.20

如果 Routing Table、Default Gateway、IP、Subnet Mask 都正確,就應該可以完成:

PC0
192.168.1.10
      │
      ▼
Router0
      │
      ▼
Router1
      │
      ▼
Server0
10.0.0.20

這次 Ping 已經不是同一個 Network 裡面的測試。

而是真正跨過:

192.168.1.0/24
↓
192.168.12.0/30
↓
10.0.0.0/24

三個 Network。


那平常上網都要自己打 ip route 嗎?

平常電腦連上 Wi-Fi,DHCP 通常就會自動取得:

IP Address
Subnet Mask
Default Gateway
DNS

電腦也會自動建立需要的基本 Routing Table。

家裡的 Router 通常也已經有:

LAN 的 Connected Route
+
往 ISP 的 Default Route

所以一般使用者根本不會看到這些設定。

我們現在手動打 Static Route,是為了看懂:

Router 到底怎麼知道 Packet 下一步要去哪裡?

而大型網路如果 Router 很多,也不可能全部人工設定 Static Route。

之後會再碰到 OSPF、BGP 之類的 Dynamic Routing Protocol,讓 Router 彼此交換路由資訊。


從今天才真的開始懂 Router?

前幾天講 Router 的時候,大概知道:

不同 Network 需要 Router。

但今天把設備真的接起來之後,理解變得比較具體。

Router 不是單純:

收到 Packet
↓
轉出去

而是:

收到 Packet
↓
看 Destination IP
↓
查 Routing Table
↓
決定下一跳
↓
如果下一跳走 Ethernet
還要知道下一跳 MAC
↓
包成新的 Ethernet Frame
↓
送出去

所以目前可以先把前幾天的東西串成:

IP
→ 我最終要去哪裡

Subnet Mask
→ 判斷目的地是不是同一個 Network

Default Gateway
→ 不同 Network 時先交給誰

ARP
→ 下一跳的 IP 對應哪個 MAC

Routing Table
→ Router 知道哪些 Network 怎麼走

Static Route
→ 人工補一條 Router 原本不知道的路

這樣 Router 就終於不再只是拓樸圖中間那一顆圖示了。

它是真的會:

收到一個 Packet,查表,決定下一步往哪走。


Day 06 小結

這一篇實際碰到的指令:

interface
ip address
no shutdown
ping
show ip interface brief
show ip route
ip route

但最重要的不是把它們背下來。

而是終於看到:

一個 Router 可以有多個 interface
↓
每個 Layer 3 interface 可以有自己的 IP
↓
Router 因此可以同時連到不同 Network
↓
Routing Table 決定 Packet 下一步往哪裡走

上一篇
Day 05|Router 怎麼知道下一站?Routing Table、Static Route 到底是什麼?
下一篇
Day 07|Router 有很多條路時怎麼選?從 /25 到 Longest Prefix Match
系列文
網路為什麼筆記本:從一個封包開始,把 Router、Switch 與 Routing 串起來9
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言